package com.lazy.book.service.system;

import com.lazy.book.pojo.system.pojo.dto.common.SelectorQueryDTO;
import com.lazy.book.pojo.system.pojo.dto.sysrole.SysRoleCreateDTO;
import com.lazy.book.pojo.system.pojo.dto.sysrole.SysRoleListDTO;
import com.lazy.book.pojo.system.pojo.dto.sysrole.SysRoleUpdateDTO;
import com.lazy.book.pojo.system.pojo.po.SysRole;
import com.lazy.book.pojo.system.pojo.vo.common.RoleVO;
import com.mybatisflex.core.service.IService;
import com.sz.core.common.entity.PageResult;
import com.sz.core.common.entity.SelectIdsDTO;

import java.util.List;
import java.util.Set;

/**
 * @author lay
 * @since 2025-09-05
 */
public interface SysRoleService extends IService<SysRole> {

    void create(SysRoleCreateDTO dto);

    void update(SysRoleUpdateDTO dto);

    PageResult<SysRole> page(SysRoleListDTO dto);

    List<SysRole> list(SysRoleListDTO dto);

    void remove(SelectIdsDTO dto);

    SysRole detail(Object id);

    List<RoleVO> listSelector(SelectorQueryDTO dto);

    Set<String> getRoleKeysByUserId(Long userId);

    Set<String> getRoleNamesByUserId(Long userId);
}
